#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>

void handler(int signumber)
{
    // 整个代码就只有这⼀处打印
    std::cout << "获取了一个信号: " << signumber << std::endl;
}

int main()
{
    // signal(SIGABRT, handler);
   
    while (true)
    {

        sleep(1);
        abort();
    }
}


// mykill -signumber pid
// int main()
// {
//     signal(2, handler);// 先对2号信号进⾏捕捉
//     // 每隔1S，⾃⼰给⾃⼰发送2号信号
 
//     while (true)
//     {

//         sleep(1);
//         raise(2);
//     }
// }


// // mykill -signumber pid
// int main(int argc, char *argv[])
// {
//     if (argc != 3)
//     {
//         std::cerr << "Usage: " << argv[0] << " -signumber pid" << std::endl;
//         return 1;
//     }
//     int number = std::stoi(argv[1] + 1); //

//     pid_t pid = std::stoi(argv[2]);
//     int n = kill(pid, number);
//     return n;
// }

// #include <iostream>
// #include <unistd.h>
// #include <signal.h>

// int main()
// {
//     while(true)
//     {
//         sleep(1);
//     }

// }

// void handler(int signumber)
// {
//     std::cout<<"我是："<<getpid() <<",我获得一个信号："<< signumber <<std::endl;
// }

// int main()
// {
//     std::cout<<"我是进程: "<<getpid() <<std::endl;
//     // signal(SIGINT/*2*/, SIG_IGN);// 设置忽略信号的宏
//     // signal(SIGINT/*2*/, SIG_DFL);// 输⼊ctrl+c,进程退出，就是默认动作
//     // signal(SIGQUIT, handler);
//     // signal(SIGTSTP/*20*/, handler);

//     while(true)
//     {
//         std::cout<<"I am a process, I am waiting signal!"<< std::endl;
//         sleep(1);
//     }
//     return 0;
// }

// int main()
// {
//     while(true)
//     {
//         std::cout<< "I am a process, I am wiat signal!" <<std::endl;
//         sleep(1);
//     }
//     return 0;
// }